home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / network / ka9q / ka9q_src.arc / FTP.H < prev    next >
C/C++ Source or Header  |  1988-11-29  |  1KB  |  44 lines

  1. #define    FTP_PORT    21    /* Control port */
  2. #define    FTPD_PORT    20    /* Data port */
  3. #define CTLZ    26        /* EOF for CP/M systems */
  4.  
  5. extern char userfile[];    /* List of user names and permissions */
  6.  
  7. /* Per-session control block */
  8. struct ftp {
  9.     struct ftp *prev;    /* Linked list pointers */
  10.     struct ftp *next;
  11.     struct tcb *control;    /* TCP control connection */
  12.     char state;
  13. #define    COMMAND_STATE    0    /* Awaiting user command */
  14. #define    SENDING_STATE    1    /* Sending data to user */
  15. #define    RECEIVING_STATE    2    /* Storing data from user */
  16. #define    PASSCMD_STATE    3    /* Reading password from user */
  17.  
  18.     char type;        /* Transfer type */
  19. #define    IMAGE_TYPE    0
  20. #define    ASCII_TYPE    1
  21.  
  22.     FILE *fp;        /* File descriptor being transferred */
  23.     struct socket port;    /* Remote port for data connection */
  24.     struct tcb *data;    /* Data connection */
  25.  
  26.     /* The following are used only by the server */
  27.     char *username;        /* Arg to USER command */
  28.     char *path;        /* Allowable path prefix */
  29.     char perms;        /* Permission flag bits */
  30. #define    FTP_READ    1    /* Read files */
  31. #define    FTP_CREATE    2    /* Create new files */
  32. #define    FTP_WRITE    4    /* Overwrite or delete existing files */
  33.  
  34.     char *buf;        /* Input command buffer */
  35.     char cnt;        /* Length of input buffer */
  36.     char *cd;        /* Current directory name */
  37.  
  38.     /* And this is used only by the client */
  39.     struct session *session;
  40. };
  41.  
  42. #define    NULLFTP    (struct ftp *)0
  43.  
  44.